Przejdź do zawartości

HTTPS

Z Wikipedii, wolnej encyklopedii
Protokół HTTPS

HTTPS (ang. Hypertext Transfer Protocol Secure) – protokół HTTP chroniony przy pomocy szyfrowania protokołu TLS (dawniej SSL) i ustandaryzowany w dokumencie RFC 2818 pod rzadziej używaną nazwą HTTP Over TLS[1]. Szyfrowanie komunikacji w systemie od końca do końca ma zapobiegać jej przechwytywaniu między klientem i serwerem (np. atak man in the middle) czy wręcz modyfikacji przesyłanych danych, zanim dotrą do celu[1].

W przeciwieństwie do niezabezpieczonego HTTP, którego serwery nasłuchują na porcie 80[2], serwery obsługujące HTTPS nasłuchują domyślnie na porcie 443 protokołu TCP[1]. Adresy URL zaczynają się od https://, podczas gdy adresy niezabezpieczonego HTTP od http://[1].

Ograniczenia i rozpowszechnienie

[edytuj | edytuj kod]

Protokół HTTP realizuje się warstwę wyżej od standardu TLS, który znajduje się na warstwie prezentacji. Najpierw następuje więc wymiana kluczy TLS, a dopiero później możliwe jest przesłanie żądania HTTP. Historycznie uniemożliwiało to serwerom obsługiwanie wielu domen (bądź poddomen) z różnymi certyfikatami przy użyciu jednego adresu IP. Było to spowodowane brakiem informacji o tym, którego certyfikatu X.509 i klucza prywatnego należy użyć do odszyfrowania danych, ponieważ nagłówek HTTP Host jest przekazywany wewnątrz zaszyfrowanej części zapytania (którego z kolei nie można odszyfrować, nie znając domeny). Jedynym obejściem było użycie wspólnego certyfikatu dla wszystkich domen. Problem został zażegnany poprzez wprowadzenie do TLS rozszerzenia SNI (ang. Server Name Indication), które przechowuje informację o domenie w nieszyfrowanej postaci[3].

Procent domen w Internecie serwujących strony domyślnie po HTTPS na przestrzeni lat
Źródło: W3Tech, marzec 2023[4][5]

W starszych wersjach HTTP szyfrowanie połączenia było rozszerzeniem protokołu. Począwszy od HTTP/2 mimo braku takiego wymogu w RFC[6], szyfrowanie stało się de facto wymogiem protokołu ze względu na stan implementacji w najpopularniejszych silnikach przeglądarek internetowych[7].

Zobacz też

[edytuj | edytuj kod]

Przypisy

[edytuj | edytuj kod]
  1. a b c d HTTP Over TLS, RFC 2818, IETF, maj 2000, DOI10.17487/RFC2818, ISSN 2070-1721, OCLC 943595667 (ang.).
  2. R. Fielding i inni, Hypertext Transfer Protocol -- HTTP/1.1, RFC 2616, IETF, czerwiec 1999, DOI10.17487/RFC2616, ISSN 2070-1721, OCLC 943595667 (ang.).
  3. Rozszerzenie to łączy się jednak ze szczególnymi implikacjami prywatności i bezpieczeństwa, bowiem pozwala na wgląd w szyfrowany ruch sieciowy. Serwery pośredniczące w ruchu posiadają możliwość śledzenia, z jakimi domenami łączy się przeglądarka użytkownika. Ponieważ w implementacjach HTTP starszych niż 1.1 osobny IP musiał odpowiadać jednej zabezpieczonej domenie, co umożliwiało mapowanie ruchu, nie pogarsza to poziomu prywatności użytkowników, ale także go nie podnosi.
  4. Historical yearly trends in the usage statistics of site elements for websites. w3techs.com. [dostęp 2023-03-03]. (ang.).
  5. Sam Soltano: 20% of all websites and 53.9% of the top 1000 sites redirect to https.. w3techs.com, 2017-08-08. [dostęp 2023-03-03]. (ang.).
  6. Mark Nottingham: HTTP/2 Implementation Status. 2015-07-15. [dostęp 2022-09-06].
  7. HTTP/2 Frequently Asked Questions. [dostęp 2022-09-06]. (ang.).